package com.ftg.learn.day15;

import java.sql.*;

/**
 * java可以连接并操作mysql
 *
 * @author 布衣
 */
public class FirstJavaConnectMysql {

    //初始化块
    {

    }

    //初始化块
    static{

    }

    public FirstJavaConnectMysql(){

    }

    /**
     * java - mysql : jdbc -> java database connectivity : 面向接口编程
     *  java 提供了一套接口 java.sql.DriverManager java.sql.Connection java.sql.Statement
     *   所有的数据库厂商要为这套接口编写实现类 （*.jar）
     * 1 ： 我们要把mysql的驱动jar包，添加到项目中
     * 1.1 我们使用的是maven 管理依赖
     *       <dependency>
     *             <groupId>mysql</groupId>
     *             <artifactId>mysql-connector-java</artifactId>
     *             <version>8.0.33</version>
     *         </dependency>
     * 2 :  连库串 ： jdbc:mysql://localhost:3306/db2402?useUnicode=true&characterEncoding=utf-8
     * 3 :  登陆信息
     */
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/db2402?useUnicode=true&characterEncoding=utf-8&serverTimeZone=UTC";
        String user = "root";
        String password = "123456";

        //用来连接数据库的会话
        Connection conn = null;
        //用来执行静态sql
        Statement statement = null;
        //结果集
        ResultSet resultSet = null;

        try{
  //5.x处理
//            String driverClass5 = "com.mysql.jdbc.Driver";
//
////            加载驱动
//            Class.forName("com.mysql.cj.jdbc.Driver");
//
//            //加载驱动
//            DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());

            //DriverManager 可以加载，注册对应的数据 库的驱动 ?
            conn = DriverManager.getConnection(url, user, password);
            statement = conn.createStatement();

            String sql = "select deptno,dname,loc from dept";
            resultSet = statement.executeQuery(sql);
            while(resultSet.next()){
                int deptno = resultSet.getInt(1);
                String dname = resultSet.getString(2);
                String loc = resultSet.getString(3);
                System.out.printf("部门编号 : %d , 部门名称 : %s ,部门地址 : %s \n", deptno,dname,loc);
            }

        }catch (SQLException e){
            e.printStackTrace();
        }finally {
            try {
                if (resultSet != null) {
                    resultSet.close();
                }
                if (statement != null) {
                    statement.close();
                }
                if (conn != null) {
                    conn.close();
                }
            }catch (SQLException s){
                s.printStackTrace();
            }
        }
    }


}
